//
// Created by liuhuan on 2021/5/22.
//

#ifndef CPP_OPE_VALUERANGE_H
#define CPP_OPE_VALUERANGE_H

#include "math.h"

#define DEFAULT_LENGTH 256
#define DEFAULT_IN_RANGE_START 1
#define DEFAULT_IN_RANGE_END pow(2, 15) -1
#define DEFAULT_OUT_RANGE_START 1
#define DEFAULT_OUT_RANGE_END pow(2, 31) -1

typedef unsigned int uint;

/**
 * 生成 指定范围 用来作为 明文域 或者 明文域
 */
class ValueRange {
public:
    uint start;
    uint end;

public:
    ValueRange();
    ValueRange(uint start, uint end);
    ValueRange(ValueRange const &other);
    uint size();
    bool contains(uint number);
    uint rangeBitSize();
};


#endif //CPP_OPE_VALUERANGE_H
